/**
 * @description 定义全局助手类方法
 */

import { SCRECT_KEY } from '@/config/common.conf'
import {enc,AES,MD5} from 'crypto-js'

/**
 * 对称加密方法
 * @param {String} msg 要加密的字符串
 * @returns String 加密后的数据
 */
export function enCodeApi(msg){
    return AES.encrypt(msg,SCRECT_KEY).toString()
}

/**
 * 对称解密方法
 * @param {String} msg 要解密的字符串
 * @returns String 解密后的字符串
 */
export function deCodeApi(msg){
    return AES.decrypt(msg,SCRECT_KEY).toString(enc.Utf8)
}

/**
 * MD5加密方法  
 * @param {String} msg 加密的字符串
 * @returns 加密后的字符串
 */
export function md5Api(msg){
    return MD5(msg).toString()
}

/**
 * 文件选择方法
 * @param {Function} cb 结果回调方法
 * @param {Boolean} multiple 是否允许多选
 * @param {String} accept 选择文件的类型
 */
export function filePicker( cb, multiple = true, accept = 'image/*' ) {
    let input = document.createElement('input')
    input.setAttribute('type', 'file')
    input.setAttribute('accept', accept)
    if (multiple) input.setAttribute('multiple', 'multiple')
    input.onchange = function() {
        let files = this.files
        if (!!cb && typeof cb === 'function') cb(files)
    }
    input.click()
}